﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PlanInterfejs
{
    public partial class IloscZajecControl : UserControl
    {
        PlanView _view;

        public PlanView View
        {
            get { return _view; }
            set { _view = value; }
        }
        public IloscZajecControl()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void IloscZajecControl_VisibleChanged(object sender, EventArgs e)
        {
            dataGridView1.Rows.Clear();
            var ptL = DAL.database.Przedmiot_Typy.Select(p => p).OrderBy(a => a.Nazwa);
            foreach (Przedmiot_Typy pt in ptL)
            {
                DataGridViewRow dgvr = new DataGridViewRow();
                dgvr.CreateCells(dataGridView1);
                dgvr.Cells[0].Value = pt.Nazwa;

                pt.Wymagane_Przedmioty.Load();
                List<Wymagane_Przedmioty> wpList = pt.Wymagane_Przedmioty.ToList();
                wpList.Sort((a1, a2) => a1.Poziom_Grupy.CompareTo(a2.Poziom_Grupy));
                if (wpList.Count >= 6)
                {
                    for (int i = 0; i < Math.Min(6, wpList.Count); i++)
                    {
                        dgvr.Cells[i+1].Value = wpList[i].Ilosc.ToString();
                    }
                }

                dataGridView1.Rows.Add(dgvr);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var res = from p in DAL.database.Wymagane_Przedmioty select p;
            foreach (Wymagane_Przedmioty wp in res)
            {
                DAL.database.DeleteObject(wp);
            }
            DAL.database.SaveChanges();


            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                string nazwaPrzedmiotu = (string)row.Cells[0].Value;
                Przedmiot_Typy actPrzedmiot =
                    (from p in DAL.database.Przedmiot_Typy
                     where p.Nazwa.Equals(nazwaPrzedmiotu)
                    select p).First();
                    
                for (int i = 1; i <= 6; i++)
                {
                    int ile;

                    try
                    {
                        ile = int.Parse((string)row.Cells[i].Value);
                    }
                    catch (FormatException)
                    {
                        ile = 0;
                    }
                    catch (ArgumentNullException)
                    {
                        ile = 0;
                    }
                    Wymagane_Przedmioty nowy = new Wymagane_Przedmioty();
                    nowy.Ilosc = ile;
                    nowy.Poziom_Grupy = i;
                    nowy.Przedmiot_TypyReference.Value = actPrzedmiot;
                    DAL.database.AddToWymagane_Przedmioty(nowy);
                }
            }
            DAL.database.SaveChanges();

            button1.Enabled = false;
        }

        private void IloscZajecControl_Load(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            button1.Enabled = true;
        }

    }
}
